<?php

namespace Org\Util;

/**
 * 日志处理类
 * @modify songanwei 2016-02-01
 */
class FileLog {

    //文件最大值
    static protected $file_max = 20971520;  //20 * 1024 * 1024;
    static protected $type = array(0 => 'success', 1 => 'error', 2 => 'notice');

    /**
     * 文件写入日志
     * @param string $log  日志内容
     * @param string $destination  文件路径
     */
    public function write($log, $type, $destination = '') {
        $prefix = (self::$type[$type]) ? (self::$type[$type]) : 'default';
        if (empty($destination)) {
            //定义默认路径
            $destination = C('LOG_DIR') . date('y_m_d') . "_" . $prefix . '.log';
        }
        //自动创建目录
        $log_dir = dirname($destination);
        if (!is_dir($log_dir)) {
            mkdir($log_dir, 0755, true);
        }
        //检查日志文件大小,超过配置大小则备份日志文件重新生成
        if (is_file($destination) && floor(self::$file_max) <= filesize($destination)) {
            rename($destination, dirname($destination) . '/' . time() . '-' . basename($destination));
        }
        error_log(date('Y-m-d H:i:s') . "\r\n{$log}\r\n", 3, $destination);
    }

}
